package com.zxl.permission.dao;

import com.zxl.permission.entity.Detail;
import com.zxl.permission.entity.Group;
import com.zxl.permission.entity.UserGroup;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Component;

import java.sql.Timestamp;
import java.util.List;

@Component("GroupDao")
public interface GroupDao {
    // 拉取用户组列表
    List<Group> getGroupList();

    // 拉取权限详细信息
    List<Detail> getDetailListFromGroupname(@Param("groupname") String groupname);

    // 添加用户组
    void addGroup(@Param("group") Group group);

    // 删除用户组
    void removeGroupFromGroupname(@Param("groupname") String groupname);

    // 拉取用户的菜单权限列表
    List<Integer> getPermissionListFromUsername(@Param("username") String username);

    //  根据用户组名称查询用户组id
    List<Integer> getGroupIdFromGroupName(@Param("groupname") String groupname);

    // 通过用户组id、用户名添加用户所属用户组
    void addUserGroupByGroupId(@Param("group_id") Integer group_id, @Param("username") String username, @Param("create_time") Timestamp create_time);

    // 查询用户-用户组列表
    List<UserGroup> getUserGroupList();
}
